
import java.util.GregorianCalendar;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author Max
 */
public class FinalExam {
	private Points points;
	private Mark mark;
	private GregorianCalendar date;
	private Professor professor;
	
	public FinalExam(int maxPoints, GregorianCalendar date, Professor professor) {
		this.points = new Points(maxPoints);
		this.mark = null;
		this.date = date;
		this.professor = professor;
	}
	
	public FinalExam(FinalExam finalExam, int achievedPoints, Mark mark) {
		this.points = finalExam.getPoints();
		this.points.setAchievedPoints(achievedPoints);
		this.mark = mark;
		this.date = finalExam.getDate();
		this.professor = finalExam.getProfessor();
	}
	
	public FinalExam(FinalExam finalExam, int achievedPoints, int mark) {
		this.points = finalExam.getPoints();
		this.points.setAchievedPoints(achievedPoints);
		this.mark = finalExam.getMark();
		this.mark.setMark(mark);
		this.date = finalExam.getDate();
		this.professor = finalExam.getProfessor();
	}

	/**
	 * @return the points
	 */
	public Points getPoints() {
		return points;
	}

	/**
	 * @param points the points to set
	 */
	public void setPoints(Points points) {
		this.points = points;
	}
	
	/**
	 * @param points the points to set
	 */
	public void setPoints(int maxPoints, int achievedPoints) {
		this.points.setMaxPoints(maxPoints);
		this.points.setAchievedPoints(achievedPoints);
	}


	/**
	 * @return the mark
	 */
	public Mark getMark() {
		return mark;
	}

	/**
	 * @param mark the mark to set
	 */
	public void setMark(Mark mark) {
		this.mark = mark;
	}
	
	/**
	 * @param mark the mark to set
	 */
	public void setMark(int mark) {
		this.mark.setMark(mark);
	}

	/**
	 * @return the date
	 */
	public GregorianCalendar getDate() {
		return date;
	}

	/**
	 * @param date the date to set
	 */
	public void setDate(GregorianCalendar date) {
		this.date = date;
	}

	/**
	 * @return the professor
	 */
	public Professor getProfessor() {
		return professor;
	}

	/**
	 * @param professor the professor to set
	 */
	public void setProfessor(Professor professor) {
		this.professor = professor;
	}
	
}
